<?php
class CPartie extends \BaseController {
	private $partie;
	
	/* (non-PHPdoc)
	 * @see BaseController::index()
	 */
	public function index() {		
		$this->loadView("vHeader");
		echo JsUtils::get("/trivia/CIndex/getMenu", "{}", "#menu");
		$this->viewCreateParty();
		$this->viewJoinParty();
		$this->viewYourParty();
	}
	private function addNew(){
		$this->partie=new Partie();		
	}
	private function load($idPartie){
		$this->partie=DAO::getOne('Partie', $idPartie);
	}
	private function addPlayer($joueur){
		$result=false;
		if($this->partie->getJoueur1()==null){
			$this->partie->setJoueur1($joueur);
			if(DAO::insert($this->partie)==1){
				$result=true;
			}			
		}else if($this->partie->getJoueur2()==null){
			$this->partie->setJoueurEnCours($joueur);
			$this->partie->setJoueur2($joueur);
			if(DAO::update($this->partie)==1){
				$result=true;
			}			
		}
		return $result;
	}
	private function loadPlayer(){
		$joueur=null;
		if (array_key_exists('joueur', $_SESSION)){
			$joueur=$_SESSION['joueur'];
		}
		return $joueur;
	}
	public function createParty(){
		if($this->loadPlayer()!=null){
			$joueur=$this->loadPlayer();
			$this->addNew();
			if($this->addPlayer($joueur)){
				echo 'Partie créée avec succès.';
			}else{
				echo 'Une erreur est survenue, impossible de créer la partie.';
			}
			echo JsUtils::doSomethingOn("#messageCP", "hide", 3000);
		}
	}
	public function viewCreateParty(){
		$this->loadView("vAddParty");
		echo JsUtils::getAndBindTo("#createParty", "click", "/trivia/CPartie/createParty/","{}","#messageCP");
		
	}
	public function joinParty($id){
		$id=str_replace("joinParty","",$id[0]);
		if($this->loadPlayer()!=null){
			$joueur=$this->loadPlayer();
			$this->load($id);
			if($this->addPlayer($joueur)){
				echo 'Vous avez rejoint la partie de '.$this->partie->getJoueur1().'.';
			}else{
				echo 'Une erreur est survenue, impossible de rejoindre la partie.';
			}
		}
	}
	public function viewJoinParty(){
		$this->loadView("vJoinParty",$this->displayParty());
		echo JsUtils::getAndBindTo(".join", "click", "/trivia/CPartie/joinParty/","{}","#messageJP");
	}
	public function displayParty(){
		return DAO::getAll("Partie","idJoueur2 IS NULL AND idJoueur1<>".$this->loadPlayer()->getId());
	}
	public function viewYourParty(){
		$this->loadView("vYourParty",$this->displayYourParty());
		//echo JsUtils::getAndBindTo(".join", "click", "/trivia/CPartie/joinParty/","{}","#messageJP");
	}
	public function displayYourParty(){
		return DAO::getAll("Partie","idJoueurEnCours=".$this->loadPlayer()->getId());
	}
	
}